For example, Peripheral Component Interconnect Express (PCIe) is known as a bus standard designed to connect a central processing unit (CPU) and an input/output (I/O) device inside a computer that is an information processing apparatus. The PCIe has a tree structure with a root complex at the top and the I/O device at the bottom. In order to connect a plurality of I/O devices, a PCIe switch is disposed at the middle point of the tree structure.
For example, for I/O devices conforming to the PCIe standard, there are Ethernet (registered trademark) controllers and Serial Advanced Technology Attachment (SATA) controllers.
Even if these controllers conforming to the PCIe standard follows the PCIe specifications, the minute operation specifications, such as an error handling or initialization vary depending on controllers developed by each manufacturer.
Conventionally, each device driver performs a process conforming to each controller, whereby a controller is operated. Thus, developers of the device drivers usually understand the operation of hardware and install processes into the device drivers.
For example, when an error handling is performed, a specific controller is not able to detect a subsequent error unless an error status of a specific register is cleared; however, there is also a different specification in which another controller can detect a subsequent error even if the controller does not clear the same register. In order to appropriately detect an error in hardware, a device driver needs to be associated with each controller in a manner in which, for example, an error status of a specific register is cleared in a specific controller and the error status does not need to be cleared in another controller.
As a method of processing an event that occurs in a PCIe device, there is a conventional technology that blocks an instruction with respect to a device in which an event is detected and that controls the device on the basis of the command that is subsequently received from an operating system (OS).
Patent Document 1: Japanese National Publication of International Patent Application No. 2013-534665
However, if a device driver is changed for each controller, which is conventionally performed, the number of steps used for performing error handling conforming to hardware is increased in the development of software in a case in which, for example, a device driver is used for each controller.
Furthermore, if a conventional technology that blocks an instruction with respect to a device and that controls the device in accordance with a command received from an OS, it is possible to perform processes common in each device; however, it is difficult to absorb a difference between devices.